# 文件夹类
import os
import pathlib
import glob
import shutil


class PathClass:
    # 不同文件组成的嵌套字典
    file_dict = {
        '图片': ['jpg', 'png', 'gif', 'webp'],
        '视频': ['rmvb', 'mp4', 'avi', 'mkv', 'flv'],
        "音频": ['cd', 'wave', 'aiff', 'mpeg', 'mp3', 'mpeg-4'],
        '文档': ['xls', 'xlsx', 'csv', 'doc', 'docx', 'ppt', 'pptx', 'pdf', 'txt'],
        '压缩文件': ['7z', 'ace', 'bz', 'jar', 'rar', 'tar', 'zip', 'gz'],
        '常用格式': ['json', 'xml', 'md', 'ximd'],
        '程序脚本': ['py', 'java', 'html', 'sql', 'r', 'css', 'cpp', 'c', 'sas', 'js', 'go'],
        '可执行程序': ['exe', 'bat', 'lnk', 'sys', 'com'],
        '字体文件': ['eot', 'otf', 'fon', 'font', 'ttf', 'ttc', 'woff', 'woff2']
    }

    def __init__(self, path='./'):
        self.path = path
        self.files = []  # 包含的本级文件
        self.subpath = []  # 包含的本级子路径
        print('cwd: ',os.getcwd())
        print('files: ', os.listdir(self.path))

    def get_files(self, suffix_names=[]):
        '''
        获取文件列表
        :param arg: 如果不填参数: 获取所有文件, 一个或多个参数, 获取给定后缀(可以多个,不带'.')的文件
        :return:
        '''
        # print(os.listdir(self.path))
        # print('arg in class:',arg)
        for one in os.listdir(self.path):
            if os.path.isfile(self.path + one):
                if len(suffix_names) == 0:
                    self.files.append(one)
                elif one.split('.')[-1] in suffix_names:
                    self.files.append(one)
        return self.files


if __name__ == '__main__':
    my_path = PathClass('./data_source/test/')
    print(my_path.get_files())
